/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Juego;

import java.util.ArrayList;
import java.util.Collections;

/**
 *
 * 
 * 
 * 
 * @author dilaang
 */
public class Jugador {

    private Baraja bar;
    private ArrayList<Carta> cartas;
    private boolean planto; 
    private boolean sepaso;
    private boolean tiene21;
    private boolean dealer;

    public Jugador(boolean t) {

        dealer = t;
        bar = new Baraja();
        cartas = new ArrayList<Carta>();
        planto = false;
        sepaso = false;
        tiene21 = false;
    }

    //recibe el mensaje y lo evalua NO HACE CONTROL DE ERRORES
    public void check(Byte b) {
        if (b > -1 && b < 53) {
            //bar.getCarta(b);
        } else if (b < 0) {
            //Jugador Plantó
            planto = true;
        }
    }

    public int sum() {
        int i2 = 0;
        ArrayList<Carta> c = new ArrayList<Carta>(cartas);
        Collections.sort(c);
        int as = 0;
        for (int i = 0; i < cartas.size(); i++) {
            if (c.get(i).getValor() == 1) {
                i2 += 11;
                as++;
            } else if (c.get(i).getValor() > 10) {
                i2 += 10;
            } else {
                i2 += c.get(i).getValor();
            }
        }
        for (int i = 0; i < as && i2 > 21; i++) {
            i2 -= 10;
        }
        if (i2 > 21) {
            sepaso = true;
        }
        if (i2 == 21) {
            tiene21 = true;
        }
        return i2;
    }

    public boolean sePaso() {
        return sepaso;
    }

    public boolean tiene21() {
        return tiene21;
    }

    public boolean estaPlantado() {
        return planto;
    }

    public void planto() {
        planto = true;
    }

    public Byte pedirCarta() {
        Carta carta = new Carta(bar.getCarta());
        cartas.add(carta);
        sum();
        return carta.cod();
    }
    public void recibirCarta(int cod) {
        Carta carta = new Carta();        
        cartas.add(carta.devolverDatosCarta(cod));
    }    
    public void setDealer(int a)
    {
        if(a == 1)
        {
            dealer = true;
            }
        else
        {
            dealer = false;
            }
        }
    public void set21(boolean a)
    {
        tiene21 = a;
        }
    public void setSePaso(boolean a)
    {
        sepaso = a;
        } 
    public Carta devolverReves()
    {
        Carta carta = cartas.get(2);
        return carta;
        }
}
